<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
//			"use strict"

			//(1)变量必须声明才能使用
			v = 1; // 报错，v未声明
		　　for(i = 0; i < 2; i++) { // 报错，i未声明
				console.log(v+i)
		　　}
			
			//(2)禁止使用with
			var o = {name:'张三'}		
			with (o){
				console.log(name)
			}
			
			//(3)禁止使用eval
			var code = "var a = 3;console.log(a)"
			eval(code)
			
			//增强的安全性措施
			//(4)禁止this关键字指向全局对象
			function fun(a,b){
				console.log(this)
				return a + b
			}
			fun.call({name:'张三'},3,4)
			fun.apply({name:'张三'},[3,4])
			
			var newFun = fun.bind({name:'张三'})
			newFun(3,4)
			//(5)禁止在函数内部遍历调用栈
			function f1(){
//		　　　　"use strict"
		　　　　f1.caller // 报错
		　　　　f1.arguments // 报错
		　　}
		　　f1();
			
			
		</script>
	</body>
</html>
